home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-15 | 1.3 KB | 50 lines | [TEXT/CWIE] |
- // STL2.cp
- #include <iostream>
- #include <vector>
- #include <deque>
- using namespace std;
-
- __MSL_FIX_ITERATORS__(char *); // Not req. w/built ins in CWPro1
-
- int main()
- {
- vector<char *> v; // OK in CW Pro 3
- // vector<char *, allocator<char *> > v; // Required in CWPro1
-
- assert(v.empty());
- v.push_back("sleep");
- v.insert(v.end(), "was");
- assert(v.size() == 2);
- v.push_back("for");
- v.push_back("the");
- v.push_back("weak");
- v.push_back("or");
- v.pop_back();
- v.push_back("and");
- v.push_back("sickly");
- v[1] = "is"; // Used to replace existing: "is" for "was"
- // v[7] = "DOS users"; // Cannot use this notation to add elements.
-
- vector<char *>::iterator vi; // Not OK in CWPro1
- // vector<char *, allocator<char *> >::iterator vi;
- for (vi = v.begin(); vi != v.end(); ++vi)
- {
- cout << (*vi) << " ";
- }
- cout << endl;
-
- typedef deque<char *, allocator<char *> > MyDeque;
- // MyDeque d((v.begin()), (v.end())); // was OK in CWPro1
- MyDeque d(v.size(), ""); // This ugly work around
- copy(v.begin(), v.end(), d.begin());// is required in CW Pro 3
-
- d.erase(d.end() - 3, d.end() - 1);
- d.push_front("MacHack:");
- ostream_iterator<char *>out(cout, " "); // Not OK in CWPro1.
- // ostream_iterator<char *, char, char_traits<char> > out(cout, " ");
- copy(d.begin(), d.end(), out); cout << endl;
- }
- // sleep is for the weak and sickly
- // MacHack: sleep is for the sickly
-
-